/**
 * FileContentManager is a Java based file manager desktop application, it can
 * show, edit and manipulate the content of the files archived inside a zip.
 * 
 * Copyright (C) 2007
 * 
 * Created by Camila Sanchez [http://mimix.wordpress.com/], Rafael Naufal
 * [http://rnaufal.livejournal.com] and Rodrigo [rdomartins@gmail.com]
 * 
 * FileContentManager is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by the
 * Free Software Foundation; either version 2.1 of the License, or (at your
 * option) any later version.
 * 
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with FileContentManager; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */
package br.com.jteam.jfcm.controller.listener;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JButton;

import br.com.jteam.jfcm.controller.event.CollapseEvent;
import br.com.jteam.jfcm.controller.EventDispatchService;
import br.com.jteam.jfcm.gui.bundle.BaseBundle;

/**
 * Classe que recebe a&ccedil;&otilde;es do usu&aacute;rio indicando que um componente precisa ser
 * exibido/omitido.
 * 
 * @see br.com.jteam.jfcm.controller.EventDispatchService
 */
public class CollapseListener implements ActionListener
{
	/**
	 * Indica o estado vis&iacute;vel/invis&iacute;vel que um componente dever&aacute; ter ap&oacute;s o
	 * lan&ccedil;amento do evento. Ser&aacute; False caso o componente deva ser exibido e
	 * True em caso contr&aacute;rio.
	 */
	private boolean collapsed;

	public void actionPerformed(ActionEvent e)
	{
		JButton button = (JButton) e.getSource();
		collapsed = !collapsed;
		String buttonTip = "";
		String buttonIcon = "";
		if (collapsed)
		{
			buttonTip = "button.tooltip.uncollapse.file.list";
			buttonIcon = "/img/right_arrow.gif";
		} else
		{
			buttonTip = "button.tooltip.collapse.file.list";
			buttonIcon = "/img/left_arrow.gif";
		}
		URL imageURL = getClass().getResource(buttonIcon);
		button.setIcon(new ImageIcon(imageURL));
		button.setToolTipText(BaseBundle.getValue(buttonTip));
		EventDispatchService.getInstance()
							.fireEvent(new CollapseEvent(collapsed));
	}
}
